#ifndef _USERMODULARFUNCTIONINTEGER_H_
#define _USERMODULARFUNCTIONINTEGER_H_

#include "userModularFunctionBase.hh"
#include <vector>

class userModularFunctionInteger: public userModularFunctionBase{
    public:
        userModularFunctionInteger(vector<string>& args):userModularFunctionBase(args){}
        virtual ~userModularFunctionInteger()=0;
//        virtual void userModularFunction(fixedBitSizeInteger prime)=0;
        void* getPair(size_t index){ return &resultPairs.at(index);}
        e_residueType getResidueType(){ return INTEGER;}
    protected:
        void storeResult( fixedBitSizeInteger res, fixedBitSizeInteger prime);
        void write_to_ostream(ostream& os);
    private:
        vector< pair< fixedBitSizeInteger, fixedBitSizeInteger> > resultPairs;

};


#endif
